symbiont golden image: integration plan (5+3 council loose-end ledger)#555
Conversation
|
Warning Review limit reached
More reviews will be available in 19 minutes and 1 second. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds ChangesSymbiont Integration Plan
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~4 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6bcb544ffb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/symbiont/INTEGRATION_PLAN.md`:
- Around line 158-161: The status marker BLOCKED(C) used in the
surreal_container entry is not defined in the status legend, making it unclear
to readers. Either add BLOCKED(C) to the status legend at the beginning of
INTEGRATION_PLAN.md with a clear description of what it means, or replace the
BLOCKED(C) status in the surreal_container entry with an existing state that is
already defined in the legend (such as open or in progress), along with
additional context in the description if needed.
- Around line 149-152: The C2 task description in the INTEGRATION_PLAN.md file
needs clarification on how to run cargo clippy for the symbiont workspace. Since
symbiont has its own [workspace] section separate from the parent workspace, the
cargo clippy command will be skipped if run from the repo root. Update the C2
task description to explicitly specify either running the command from the
crates/symbiont/ directory or adding the --manifest-path
crates/symbiont/Cargo.toml flag to the cargo clippy --all-targets -- -D warnings
command to ensure it targets the symbiont workspace correctly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 679b0f2e-6b0b-4990-a59c-3ef53d4cf80f
📒 Files selected for processing (1)
crates/symbiont/INTEGRATION_PLAN.md
Manifest: pin surrealdb-core to main + drop the [patch] (cargo forbids patching a git URL to itself). VERIFIED green — real git-deps build CARGO_EXIT=0, binary runs, unified lance 7.0.0 / lance-index 7.0.0 / lancedb 0.30.0 / datafusion 53.1.0 / arrow 58 (no lance-6/7 split). Board (.claude/board): - EPIPHANIES: prepend E-GOLDEN-IMAGE-IS-A-LIVING-HARNESS (jirak branches are stale checkout names; harness tracks each fork's living canonical branch, not a snapshot; cargo can't patch a url to itself). - TECH_DEBT: TD-SURREALDB-KVLANCE-LANCE7 Open -> PAID (surrealdb main carries the lance-7 bump; verified by manifest read + the golden-image build). - PR_ARC: #555 entry (symbiont plan + living-harness reframe, built green). - AGENT_LOG: 2026-06-20 session run. - LATEST_STATE: golden image shipped + lance-7 unified. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
Brings the integration plan onto main's portable golden-image crate: the 5+3 hardening-council findings (the three-node-representation split, the Grid->NodeRow bridge gap, the kanban-loop reality check) sequenced into the Spain-grid acceptance gate (16K-node SoA carries every Spanish electricity node; cascade NaN-free; clippy + machete clean), plus R1 (ndarray duplicate accepted as cosmetic). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
- C1 (Codex P2): symbiont's direct deps are the integration payload (main.rs only prints); cargo machete must WHITELIST them via [package.metadata.cargo-machete] ignored, never delete — else the build passes while exercising nothing. - C2 (CodeRabbit): symbiont has its own [workspace], so root-level clippy skips it; specify --manifest-path crates/symbiont/Cargo.toml (or run from the dir). - BLOCKED(C) (CodeRabbit): add a `⊘ blocked` symbol to the status legend and use it for the surreal_container entry instead of an undefined marker. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
machete only edits Cargo.toml under --fix; by default it reports unused deps and exits non-zero. So the risk isn't auto-deletion (Codex's framing + my prior edit overstated it) — it's that machete fails a "clean" gate on symbiont's intentional integration deps. The [package.metadata.cargo-machete] ignored whitelist is to make the report pass; the never-`--fix` caution remains. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
…uild Rebased onto main (carries the working surrealdb-main manifest + gitignore). Updates reflecting the living-harness reframe + the verified git-deps build: - Done: record the portable git-deps build (CARGO_EXIT=0, 12m52s, unified lance 7.0.0 / lancedb 0.30.0 / df 53.1 / arrow 58, no lance-6/7 split). - R2/R3 SUPERSEDED: commit-the-lock / pin-to-rev were the snapshot model the operator rejected; Cargo.lock is gitignored, no [patch], align on main. - R4: surrealdb lance-7 witnessed green (the "lance 6" worry was the stale jirak branch, not main); TD-SURREALDB-KVLANCE-LANCE7 PAID. - surreal_container: BLOCKED(C) was a version blocker, now version-resolved; residual is pure wiring (D-PG-6). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
a085ec7 to
ca4c20d
Compare
…st runtime edge) The 5+3 council's headline was "five crates linked, ZERO runtime edges." This builds the first one. crates/symbiont/src/bridge.rs: in-tree 8x8 lattice -> simulate_outage (DC-flow cascade) -> encode each bus's node_field into one canonical NodeRow (key=NodeGuid::local(bus), value[0..8]=f64 LE) -> assert every decoded f64 finite -> NodeRowPacket proves the 512-B/row zero-copy SoA stride. - cargo test -p symbiont: 2/2 (bit-exact finite round-trip + 512-B stride). - cargo run: "D1 bridge: 64 buses -> 64 NodeRows ... all finite ... max 0.814452". - Cargo.toml gains a lance-graph-contract path-dep (NodeRow lives there, not in lance-graph, and isn't re-exported). symbiont is the bridge's correct home: the only crate that sees BOTH NodeRow and perturbation-sim's Grid. The golden image now RUNS a genuine cross-crate edge, not just links. Board: EPIPHANIES E-FIRST-RUNTIME-EDGE-GREEN; AGENT_LOG D1; STATUS_BOARD symbiont-golden-image-harness (D0/D1 Shipped, D2/E1/BT Queued); PR_ARC #555 flipped to MERGED. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
What
Adds
crates/symbiont/INTEGRATION_PLAN.mdonto main's portable golden-image crate — the 5+3 hardening-council loose-end ledger and the acceptance gate. The golden-image crate itself (portable git-depsCargo.toml+Dockerfile+README) is already onmain; this PR carries the planning doc that was missing there.Context
crates/symbiont/is the golden image: the full Ada stack — lance-graph + lance=7.0.0+ lancedb=0.30.0+ ndarray fork + ractor fork + surrealdb (kv-lance) + OGAR — compiling+linking into one binary. The local-path variant built green this session (912 packages, exit 0); the on-main variant is the portable git-deps build validated via the Dockerfile (Railway/CI).The ledger (what this doc captures)
An 8-agent council (5 research + 3 brutal reviewers) audited the gap between "compiles" and the win condition. Headline finding: the crates link into one binary but with zero runtime edges between them — there are three incompatible "node" representations and no adapter between them.
The acceptance gate (the biggest goal): the 16K-node SoA substrate carries every Spanish electricity node; the perturbation cascade runs NaN-free;
cargo clippy+cargo macheteclean.Sequenced work:
NodeRowvsVersionedGraphSPO-plane vs perturbation-sim's f64Grid).columns.rsis a spec, not an encoder); writeGrid → NodeRow.examples/iberian.rs.Post-gate (not on the critical path): the kanban loop — real-in-parts but 2 of 5 arrows absent;
LanceVersionScheduleris not actually a ractor actor.Note
Additive only —
crates/symbiont/stays workspace-excluded, so this does not touch the default lance-graph build/CI.🤖 Generated with Claude Code
Generated by Claude Code
Summary by CodeRabbit